home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr49
/
pgp23src.zip
/
ZIP.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-09
|
4KB
|
140 lines
/*
Copyright (C) 1990,1991 Mark Adler, Richard B. Wales, and Jean-loup Gailly.
Permission is granted to any individual or institution to use, copy, or
redistribute this software so long as all of the original files are included
unmodified, that it is not sold for profit, and that this copyright notice
is retained.
*/
/*
* zip.h by Mark Adler.
*/
/* Set up portability */
#include "ztailor.h"
#define MIN_MATCH 3
#define MAX_MATCH 258
/* The minimum and maximum match lengths */
#ifndef WSIZE
# define WSIZE 8192 /* for PGP only use 8192 */
#endif
/* Maximum window size = 32K. If you are really short of memory, compile
* with a smaller WSIZE but this reduces the compression ratio for files
* of size > WSIZE.
*/
#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
/* Minimum amount of lookahead, except at the end of the input file.
* See deflate.c for comments about the MIN_MATCH+1.
*/
#define MAX_DIST (WSIZE-MIN_LOOKAHEAD)
/* In order to simplify the code, particularly on 16 bit machines, match
* distances are limited to MAX_DIST instead of WSIZE.
*/
#include <string.h>
/* Define fseek() commands */
#ifndef SEEK_SET
# define SEEK_SET 0
#endif /* !SEEK_SET */
#ifndef SEEK_CUR
# define SEEK_CUR 1
#endif /* !SEEK_CUR */
#ifndef SEEK_END
# define SEEK_END 2
#endif /* !SEEK_END */
/* For setting stdout to binary */
#ifdef MSDOS
# include <io.h>
# include <fcntl.h>
#endif /* MSDOS */
/* Types centralized here for easy modification */
#define local static /* More meaningful outside functions */
typedef unsigned char uch; /* unsigned 8-bit value */
typedef unsigned short ush; /* unsigned 16-bit value */
typedef unsigned long ulg; /* unsigned 32-bit value */
/* Error return codes and PERR macro */
#include "ziperr.h"
/* Internal attributes */
#define UNKNOWN -1
#define BINARY 0
#define ASCII 1
/* Public globals */
#define BEST -1 /* Use best method (deflation or store) */
#define STORE 0 /* Store method */
#define DEFLATE 8 /* Deflation method*/
extern int method; /* Restriction on compression method */
extern int level; /* Compression level */
/* Diagnostic functions */
#ifdef DEBUG
extern char verbose; /* PGP -l flag */
# ifdef MSDOS
# undef stderr
# define stderr stdout
# endif
# define diag(where) fprintf(stderr, "zip diagnostic: %s\n", where)
# define Assert(cond,msg) {if(!(cond)) error(msg);}
# define Trace(x) fprintf x
# define Tracev(x) {if (verbose) fprintf x ;}
# define Tracevv(x) {if (verbose>1) fprintf x ;}
# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
#else
# define diag(where)
# define Assert(cond,msg)
# define Trace(x)
# define Tracev(x)
# define Tracevv(x)
# define Tracec(c,x)
# define Tracecv(c,x)
#endif
/* Public function prototypes */
/* in zip.c, zipcloak.c, or zipsplit.c */
void err OF((int c, char *h));
void error OF((char *h));
/* in zipup.c */
int zipup OF((FILE *inFile, FILE *outFile));
int read_buf OF((char far *buf, unsigned size));
# define zfwrite fwrite /* ??? far */
# define zputc putc
/* in deflate.c */
void lm_init OF((int pack_level, ush *flags));
ulg deflate OF((void));
/* in trees.c */
void ct_init OF((ush *attr, int *Method));
int ct_tally OF((int dist, int lc));
ulg flush_block OF((char *buf, ulg stored_len, int eof));
/* in bits.c */
void bi_init OF((FILE *zipfile));
void send_bits OF((int value, int length));
unsigned bi_reverse OF((unsigned value, int length));
void bi_windup OF((void));
void copy_block OF((char far *buf, unsigned len, int header));
/* end of zip.h */